Memory module thermal management

ABSTRACT

A method is disclosed for implementing a scheme to configure thermal management control for a memory device resident on a memory module for a computing platform. A method is also disclosed for implementing the configured thermal management control. In a run-time environment for a computing platform a temperature is obtained from a thermal sensor monitoring the memory module. The memory module is in a given memory module with thermal sensor configuration that includes the memory device. An approximation of a temperature for the memory device is made based on thermal information associated with the given configuration of the memory module and the obtained temperature. The configured thermal management control for the memory device is implemented based on the approximated temperature. Other implementations and examples are also described in this disclosure.

RELATED APPLICATIONS

This application is a continuation of Ser. No. 11/589,622 filed Oct. 30,2006, now U.S. Pat. No. 7,830,690 issued Nov. 9, 2010 and is related tocommonly assigned U.S. application Ser. No. 10/955,154, filed by SandeepJain, Animesh Mishra, Jun Shi, Pochang Hsu and David Wyatt on Sep. 30,2004 and entitled “Calibration of Thermal Sensors for SemiconductorDies” both of which are herein incorporated by reference in theirentirety.

BACKGROUND

Cooling constraints are typical challenges faced in a computing platformoperating environment. These cooling constraints may be increased in acompact or mobile computing platform. Among the components that arelikely impacted by these cooling constraints is memory for the computingplatform. This memory may include one or more memory devices that residein the computing platform on one or more memory modules such as dualin-line memory modules (DIMMs) or small outline DIMMS (SO-DIMMs).Typically, to operate a computing platform at a high level of efficiencyand/or prevent damage to memory devices, accurate temperatures of memorydevices are desirable.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustration of elements of an example computing platform;

FIG. 2 provides a block diagram of an example thermal managerarchitecture;

FIG. 3 is an illustration of an example configuration for a memorymodule on the computing platform;

FIG. 4 provides tables to depict example thermal characteristics of agiven memory module with thermal sensor configuration and defaultthermal characteristics;

FIG. 5 is a flow chart of an example method to implement a scheme toconfigure thermal management control for one or more memory devices on amemory module; and

FIG. 6 is a flow chart of an example method to implement thermalmanagement control for the one or more memory devices.

DETAILED DESCRIPTION

As mentioned in the background, cooling constraints are a challenge incompact or mobile computing platforms and accurate temperatures ofmemory devices are important to meet these challenges. Maximum or highpoint memory case temperatures are typically associated with a buffer or“guard band” to ensure maximum memory device temperatures are notexceeded. Typically, the more accurate an obtained memory devicetemperature is the more efficient and less prone to failure the memorydevice can be. This accuracy can lead to a smaller or narrower guardband and thus a memory device can reach higher temperatures beforethermal management controls are activated (e.g., memory accessthrottling). But the cost and added complexity of placing thermalsensors directly on each memory device to increase that accuracy can beproblematic.

In one example a scheme is implemented to configure thermal managementcontrol for a memory device resident on a memory module for a computingplatform. In a run-time environment, for example, the configured thermalmanagement control is implemented. In one example, a temperature isobtained from a thermal sensor monitoring the memory module. The memorymodule, for example, is in a given memory module with thermal sensorconfiguration that includes the memory device. An approximation of atemperature for the memory device, for example, is made based on thermalinformation associated with the given configuration of the memory moduleand the obtained temperature. According to this example, the configuredthermal management control for the memory device is implemented based onthe approximated temperature.

FIG. 1 is an illustration of elements of an example computing platform100. In one example, as depicted in FIG. 1, computing platform 100includes thermal manager 110, network interface 120, processing elements130, memory controller 140, thermal sensor 150 and memory module 160.Although not shown in FIG. 1, computing platform 100 may also includeother hardware, software, firmware or a combination of these elementsand be a part of a computing device. This computing device may be anultra mobile computer (UMC), a notebook computer, a laptop computer, atablet computer, a desktop computer, a digital broadband telephonydevice, a digital home network device (e.g., cable/satellite/set topbox, etc.), a personal digital assistant (PDA), single blade computer ina chassis and/or rack, a server and the like.

In one example, as described more below, thermal manager 110 implementsa scheme to configure thermal management control for one or more memorydevices 160A-D resident on memory module 160 for computing platform 100.In a run-time environment, for example, the configured thermalmanagement control is implemented by features of thermal manager 110and/or other elements of computing platform 100, e.g., memory controller140 or processing elements 130.

In one example, thermal manager 110 is coupled to other elements ofcomputing platform 100 via one or more communication links. Thesecommunication links, for example, are depicted in FIG. 1 ascommunication links 112, 114, 116 and 118. As described more below,thermal manager 110, for example, includes an appropriate interface tothese other elements to implement or cause to be implemented the thermalmanagement control of one or more memory devices 160A-D resident onmemory module 160.

In one example, network interface 120 includes the interface via whichcomputing platform 100 is coupled to a network via network link 101,e.g., a wired or a wireless local area network (LAN/WLAN), a wide areanetwork (WAN/WWAN), a metropolitan area network (MAN), a personal areanetwork (PAN) and a cellular or a wireless broadband telephony network.Network interface 120, for example, includes hardware, software orfirmware to transmit and receive data to this network. This may includeone or more network interface cards, or other elements to receive andtransmit data via network link 101. In one example, communication link122 may be used by network interface 120 elements to make memoryread/write requests to memory controller 140. These requests maysend/retrieve data to/from one or more memory devices 160A-D.

In one example, processing elements 130 include the software, hardware,and/or firmware to support one more processing operations on computingplatform 100. This may include software such as operating systems and/orapplications, hardware such as microprocessors, network processors,service processors, microcontrollers, field programmable gate arrays(FPGAs), application specific integrated circuit (ASICs) and firmware toinclude executable code to initiate basic input/output systems (BIOS)and/or initiate computing platform 100 elements for virtualizationoperations. In one example, communication link 132 may be used byprocessing elements 130 to make memory read/write requests to memorycontroller 140.

In one example, memory controller 140 handles/completes requests fordata to be stored (written) and retrieved (read) into one or more memorydevices 160A-D. For example, these requests may be received viacommunication links 122 or 132. In one implementation, memory controller140 may throttle the rate at which these memory requests are handled(e.g., throttle memory bandwidth) based on approximated temperaturesdetermined, for example, by thermal manager 110.

In one example, memory controller 140 may be integrated with an elementof processing elements 130. For example, memory controller 140 may serveas an integrated memory controller for a microprocessor. In thisexample, thermal manager 110 may communicate with memory controller 140through an interface coupled to processing elements 130 (e.g., viacommunication link 112) or through an interface coupled directly to anintegrated memory controller 140 (e.g., via communication link 132).

In one example, as depicted in FIG. 1, memory module 160 includes memorydevices 160A-D. In one implementation, these memory devices 160A-D andmemory module 160 couple to memory controller 140 through at least onememory channel (e.g., including data transmit and data receivecommunication links). An example of this coupling is depicted in FIG. 1and includes memory channel 162. Data to be written to or read from eachmemory device is routed through memory channel 162, for example, via aserial communication link or via a plurality of parallel communicationlinks. This disclosure is not limited to only a single memory modulewith four memory devices as shown in FIG. 1, but may include any numberof memory modules and may also include any number of memory devices andmemory channels.

FIG. 2 provides a block diagram of an example thermal manager 110architecture. In FIG. 2, thermal manager 110's example architectureincludes thermal processing logic 210, control logic 220, memory 230,input/output (I/O) interfaces 240 and optionally one or moreapplications 250.

In one example, the elements portrayed in FIG. 2's block diagram arethose elements to support or enable thermal manager 110 as described inthis disclosure, although a given thermal manager may include some, allor more elements than those depicted in FIG. 2. For example, thermalprocessing logic 210 and control logic 220 may each or collectivelyrepresent a wide variety of logic device(s) or executable content toimplement the features of thermal manager 110. These logic device(s) mayinclude a microprocessor, network processor, service processor,microcontroller, FPGA, ASIC, sequestered thread or core of amulti-core/multi-threaded microprocessor, special operating mode of aprocessor (e.g., system management mode) or combination thereof.

In FIG. 2, thermal processing logic 210 includes configuration feature212, collect feature 214, processing feature 216 and throttle feature218. In one implementation, thermal processing logic 210 uses thesefeatures to perform several operations. These operations include, forexample, configuring thermal management control for a memory deviceresident on a memory module, collecting or obtaining a temperature froma thermal sensor on the memory module to approximate a temperature forthe memory device and throttling or cause to be throttled memoryaccesses and/or power to the memory device based on the approximatedtemperature.

Control logic 220 may control the overall operation of thermal manager110 and as mentioned above, may represent any of a wide variety of logicdevice(s) or executable content to implement the control of thermalmanager 110. In an alternate example, the features and functionality ofcontrol logic 220 are implemented within thermal processing logic 210.

In one example, memory 230 stores executable content. The executablecontent may be used by control logic 220 and/or thermal processing logic210 to implement or activate features or elements of thermal manager110. As described in more detail below, memory 230 may also temporarilymaintain thermal information associated with a given configuration of amemory module for computing platform 100. The thermal information, forexample, may be obtained from one or more BIOS tables maintained byprocessing elements 130 (e.g., in firmware). The thermal information,for example, includes one or more characteristics of the given memorymodule configuration and also of a thermal sensor to monitor the memorymodule's temperature. As mentioned above and described more below, thethermal information may be used to approximate a temperature of a memorydevice resident on the memory module.

I/O interfaces 240 may provide an interface via a communication mediumor link between thermal manager 110 and elements resident on computingplatform 100. As mentioned above for FIG. 1, thermal manager 110 maycouple to these elements via communication links 112, 114, 116 and 118.I/O interfaces 240, for example, include interfaces that operateaccording to various communication protocols to communicate over thesecommunication links. For example, I/O interfaces 240 operate accordingto a communication protocol that is described in a specification such asthe System Management Bus (SMBus) Specification, version 2.0, publishedAugust 2000, and/or later versions.

I/O interfaces 240 may also provide an interface to elements locatedremotely to computing platform 100. As a result, I/O interfaces 240 mayenable thermal processing logic 210 or control logic 220 to receive aseries of instructions from these elements. The series of instructionsmay enable thermal processing logic 210 and/or control logic 220 toimplement one or more features of thermal manager 110.

In one example, thermal manager 110 includes one or more applications250 to provide internal instructions to control logic 220 and/or thermalprocessing logic 210. Applications 250 may also include drivers toaccess BIOS information (e.g., thermal information) to implement atleast a portion of the thermal management control for one or more memorydevices resident on a memory module. These drivers, for example, may beprovided by processing elements 130, e.g., from a firmware hub or froman operating system (OS).

FIG. 3 is an illustration of an example configuration 300 for memorymodule 160 on computing platform 100. In one example, configuration 300for memory module 160 as shown in FIG. 3 is substantially the sameconfiguration depicted in FIG. 1 for memory module 160. Similar to FIG.1, in one example, FIG. 3 depicts memory module 160 with memory devices160A-D and thermal sensor 150. Memory module 160, for example, iscoupled to memory controller 140 via memory channel 162 and thermalsensor 150 is coupled to logic features of thermal manager 110 viacommunication link 118. These couplings, for example, are also similarto the couplings in FIG. 1.

In one example, memory module 160 is a dual inline memory module (DIMM)and memory devices 160A-D are dynamic random memory access (DRAM)devices, although this disclosure is not limited to only this type ofmemory module and memory devices. In another example, memory module 160may be a small outline DIMM (SO-DIMM) or a single in line memory module(SIMM). DRAM devices may include, but are not limited to, generations ofdouble data rate (DDR) synchronous DRAM such as DDR (first generation),DDR2 (second generation) or DDR3 (third generation). Other types ofmemory may also include future generations of DDR or other memorytechnologies.

In one example, logic features of thermal manager 110 interact withthermal sensor 150 and memory controller 140 to implement thermalmanagement control for one or more memory devices 160A-D resident onmemory module 160. These logic features of thermal manager 110, forexample, are logic features of thermal processing logic 210. As depictedin FIG. 3, these logic features include configuration feature 212,collect feature 214, processing feature 216 and throttle feature 218. Asmentioned above and described more below, in one example, the logicfeatures depicted in FIG. 3 enable thermal manager 110 to implement orcause other elements/entities to implement thermal management controlfor memory devices 160A-D based on an approximated temperature. Causingto implement thermal management control, for example, includes relayingthe approximated temperature to thermal management entities for orresponsive to computing platform 100. These thermal management entitiesmay be part of memory controller 140 or processing elements 130 (e.g.,an OS).

As shown in FIG. 4, tables 410 and 420 list example thermalcharacteristics of a given memory module with thermal sensorconfiguration and default thermal characteristics, respectively. Thermalcharacteristics depicted in table 410, for example, are at least aportion of the thermal information associated with the given memorymodule with thermal sensor configuration and are collected anddetermined while a computing platform is in various modes of operation.These modes of operation, in one example, include a maximum workload(memory utilization high point) and a minimum or idle workload (memoryutilization low point).

Default thermal characteristics depicted in table 420, for example, arebased on generalized information that covers worst case scenarios. Theseworst case scenarios may consider typical memory module with thermalsensor configurations and make assumptions as to where the memorydevices and the thermal sensor for the memory module are typicallylocated on the memory module (e.g., at or near the center). They mayalso consider typical operating scenarios for modes of operation (e.g.,minimum/low and maximum/high workloads) for a computing platform.

In one implementation, the thermal characteristics of table 410 aremaintained by a computing platform (e.g., in BIOS tables and/orfirmware) as part of the thermal information associated with the givenmemory module with thermal sensor configuration. The default thermalcharacteristics depicted in table 420, for example, are also similarlymaintained by the computing platform. Also, for example, other thermalcharacteristics similar to those in tables 410 and 420 are associatedwith other given memory module with thermal sensor configurations. Theseother thermal characteristics, for example, are also maintained by thecomputing platform.

In one implementation, the thermal characteristics maintained by acomputing platform (e.g., tables 410 and/or 420) are determined based ontesting given memory module with thermal sensor configurations while atypical or standardized computing platform is in various modes ofoperation such as those mentioned above. These tests may be performed bythe manufacturer of memory modules or by computing platform or chipsetmanufacturers. When tested for example, a test or monitoring environmentis established that includes thermal sensors on each memory device of amemory module under test.

In one example, memory device thermal sensors may couple to the outsideof each memory device (e.g., the memory device's case or outerpackaging) and an average temperature from these sensors is collected.Another thermal sensor monitors the memory module's temperature. Anaverage for temperatures from this other thermal sensor, for example, isalso collected. Power consumed by the memory module in the givenconfiguration, for example, is also monitored, collected and averagedfor each of the modes of operation.

In one example, configuration 300 is the given configuration and thisconfiguration includes thermal sensor 150. Testing of configuration 300,for example, includes thermal sensors (not shown) to monitor the casetemperatures of each memory device 160A-D. The power consumed by memorymodule 160 is measured as computing platform 100 is in a given mode ofoperation, e.g., maximum/high or minimum/low memory workloads. As aresult of the testing, for example, the thermal characteristics depictedin table 410 of FIG. 4 are determined based on the collectedinformation.

In one example, at least some of these thermal characteristics formemory device 160A-D are depicted in table 410 as a minimum and maximumoffset in degrees Celsius (° C.) and a Theta in degrees Celsius per Watt(° C./W). The minimum offset, for example, is the offset while a memorydevice is in a minimum (low) workload mode. The maximum offset, forexample, is the offset while a memory device is in a maximum (high)workload mode. Theta, for example, indicates how the temperature offsetchanges for each memory device as the power consumed (in Watts) bymemory module 160 increases from a minimum (low) workload to a maximum(high) workload.

In one implementation, in a run-time environment, these thermalcharacteristics are used to approximate a temperature of one or morememory devices 160A-D based on a temperature obtained from thermalsensor 150 that is located on memory module 160 between memory devices160B and 160C. In one example, this approximation is in lieu of havingthermal sensors at or on each memory device. The approximation may alsobe based on other thermal information that accounts for particularthermal characteristics of elements of configuration 300 (e.g., theresolution of thermal sensor 150, the accuracy of thermal sensor 150 andpower consumed by memory module 160, power consumed by one or morememory modules 160A-D, etc.). Thermal management control for one or morememory devices 160A-D, for example, is then implemented based on theapproximated temperature. The scheme to configure this thermalmanagement control and to implement thermal management control based onan approximated temperature are described more in the example methodsdepicted in FIG. 5 and FIG. 6.

FIG. 5 is a flow chart of an example method to implement a scheme toconfigure thermal management control for one or more memory devices160A-D on memory module 160. In one example, computing platform 100, asdepicted in FIG. 1, and configuration 300, as depicted in FIG. 3, areused to describe this method. In block 510, for example, computingplatform 100 is powered-on or booted-up. This boot-up may occur as poweris initially provided to computing platform 100, or incident to a resetof computing platform 100.

In block 520, in one example, upon boot-up of computing platform 100,thermal processing logic 210 in thermal manager 110 activatesconfiguration feature 212. Configuration feature 212, in one example,obtains configuration information about memory module(s) resident oncomputing platform 100. This configuration information, for example, maybe obtained from memory controller 140 or directly from a memory moduleresident on computing platform 100, e.g., from one or more capabilityregisters associated with memory module 160. In one implementation, theobtained configuration information indicates that memory module 160 isin configuration 300 as depicted in FIG. 3. As mentioned above, in oneexample, configuration 300 includes memory devices 160A-D with a memorysensor 150 located between memory devices 160B and 160C.

In block 530, in one example, configuration feature 212 determineswhether configuration 300 is a recognized configuration. Thisrecognition, for example, is based at least in part on thermalinformation maintained by processing elements 130 of computing platform100 in BIOS tables and/or firmware as part of the thermal informationassociated with one or more given memory module with thermal sensorconfigurations. In one implementation, these BIOS tables and/or firmwaremay hold thermal information for a plurality of configurations and mayalso hold default thermal information. As described above for FIG. 4,this thermal information may include the thermal characteristicsdepicted in tables 410 and/or 420.

In block 540, in one example, configuration 300 is a recognizedconfiguration and/or matches a configuration of one or more given memorymodule with thermal sensor configurations that have thermal informationmaintained in BIOS tables and/or firmware. As described above for FIG.4, in one example, this thermal information includes the thermalcharacteristics depicted in table 410. This information may also includethe resolution of thermal sensor 150, the accuracy of thermal sensor 150and power consumed by memory module 160 and/or memory devices 160A-D.Configuration feature 212, for example, obtains that thermal informationand at least temporarily stores the thermal information in a memory(e.g., memory 230).

In block 550, in one example, configuration 300 is not a recognizedconfiguration. In this example, as described above for FIG. 4, defaultthermal information includes the thermal characteristics depicted intable 420. This information may also include the resolution of a typicalthermal sensor, the accuracy of a typical thermal sensor and powerconsumed by a typical memory module and/or memory device. Configurationfeature 212, for example, obtains the default thermal information and atleast temporarily stores that default thermal information in a memory(e.g., memory 230).

In block 560, in one example, thermal management control for memorydevices 160A-D is configured based on either the default thermalinformation associated with an unrecognized configuration 300 or thethermal information associated with a recognized configuration 300. Inone implementation, as described more in the method depicted in FIG. 6,the thermal information is used to approximate one or more memory device160A-D's temperatures and implement thermal management control formemory devices 160A-D based on an approximated temperature.

In one example, the thermal information may also be used to determineone or more given threshold values associated with an approximatedtemperature. The use of these one or more given threshold values may bean aspect of thermal management control for memory devices 160A-D. Thisaspect, for example, acts to prevent damage to these memory devices andtriggers one or more thermal management control actions if theapproximated temperature for one or more memory devices exceeds at leastone of the given threshold values. One threshold value, for example, maybe an upper threshold value that if met or exceeded indicates thataction is needed soon. Another threshold value, for example, may be acritical threshold value that if met or exceeded indicates that actionis needed immediately. The critical threshold value, for example, isbased on a temperature at which a memory device is likely to be damagedand/or fail.

In one implementation, an upper threshold value (Mem_upper) and acritical threshold value (Mem_critical) for each memory device 160A-D isdetermined based a maximum offset temperature indicated in table 410(Max_offset), an accuracy of thermal sensor 150 (Temp_accuracy) and aguard band temperature (guard band). The guard band, for example,reduces the chances that actual memory device temperatures are notexceeded if the approximated temperature exceeds a given thresholdvalue. Table 1 depicts example equations to determine upper and criticalthreshold values.

TABLE 1 Upper Threshold = Mem_upper − Max_offset − Temp_accuracy − guardband Critical Threshold = Mem_critical − Max_offset − Temp_accuracy −guard band

In one example, an accuracy for thermal sensor 150 is +/−1° C. and aguard band of 1° C. is used. In this example, a value used to determinethe upper threshold value for memory devices 160A-D is 85° C. and avalue used to determine the critical threshold value is 95° C. In thisexample, using the maximum offset from table 410 of 7.0° C. for memorydevice 160A and the equations in Table 1, the upper and criticalthreshold values are 76.0° C. and 86.0° C., respectively. Alternatively,if configuration 300 was not recognized the default information fromtable 420 that indicates a maximum offset of 8.0° C. is used and theupper and critical threshold values would be 75.0° C. and 85.0° C.,respectively. In either case the upper and critical threshold values,for example, are at least temporarily stored by configuration feature212 in a memory (e.g., memory 230).

The determination of these upper and critical threshold values, forexample, are just one aspect of configuring thermal management controlfor one or more memory devices on a memory module based on a givenmemory module with thermal sensor configuration. This disclosure is notlimited to only this aspect to configure thermal management control forthese one or more memory devices on a memory module. In one example, theconfiguration of thermal management for one or more memory devices160A-D starts over at block 510 based on another boot-up or incident toa reset of computing platform 100.

FIG. 6 is a flow chart of an example method to implement thermalmanagement control for one or more memory devices 160A-D on memorymodule 160. In one example, computing platform 100, as depicted in FIG.1, and configuration 300, as depicted in FIG. 3, are used to describethis method. Also, thermal management control for one or more memorydevices 160A-D has been configured as described for the method depictedin FIG. 5.

In block 610, in one example, computing platform 100 is alreadybooted-up and operating. In one implementation, thermal processing logic210 activates collect feature 214. Collect feature 214, for example,obtains a temperature from thermal sensor 150 via communication link118. Collect feature 214, for example, at least temporarily stores thetemperature in a memory (e.g., memory 230).

In block 620, in one example, thermal processing logic 210 activatesprocessing feature 216. Processing feature 216, for example, accesses orobtains (e.g., from memory 230) the thermal information associated withconfiguration 300. This thermal information, as mentioned above for FIG.5, may include either default thermal information (if configuration 300was not recognized) or thermal information associated with orspecifically for configuration 300. In either case, that information andthe temperature temporarily stored by collect feature 214 is used toapproximate a temperature for one or more memory devices 160A-D onmemory module 160. This approximation, for example, includes one or morethermal characteristics (see table 410 or 420) as well as other thermalinformation, e.g., thermal sensor 150's accuracy, resolution, etc.

In block 630, in one example, processing feature 216, for example,determines whether the approximated temperature meets or exceeds one ormore given thresholds. If a threshold is not met or exceeded the processreturns to block 610 and another temperature is obtained andapproximated as described above for blocks 610 and 620.

In block 640, in one example, processing feature 216 determines that theapproximated temperature met or exceeded at least one of the giventhreshold values (e.g., upper and/or critical). As mentioned for FIG. 5,determining these one or more given threshold values may be an aspect ofconfiguring thermal management control for memory devices 160A-D. In oneimplementation, thermal processing logic 210 activates throttle feature218. Throttle feature 218, for example, communicates or indicates tocomputer platform 100 elements (e.g., memory controller 140 orprocessing elements 130) that one or more memory devices 160A-D aremeeting or exceeding the given threshold value and that thermalmanagement control of these memory devices is needed. The process thenreturns to block 610 to obtain another temperature for one or morememory device 160A-D.

In one example, an approximated temperature for memory device 160D meetsor exceeds one or more given threshold values. Throttle feature 218indicates this to memory controller 140. This indication, for example,causes memory controller 140 to throttle the rate at which memory device160D is accessed. This throttling for example, is part of the thermalmanagement control for memory device 160D and the amount of throttlingmay be based on how much the given threshold value was exceeded and/orwhich given threshold values have been exceeded. For example, a certainamount of memory requests per unit of time contribute to memory device160D's temperature by a certain amount. In one example, reducing orthrottling the amount of memory requests per unit of time has anexpected effect of reducing memory device 160D's temperature below theexceeded threshold value(s). This is only one example of how a memorycontroller may implement thermal management control to reduce atemperature of a memory device. This disclosure is not limited to onlythis example.

In one example, the given threshold values are associated with differentthermal management control actions to protect memory device 160D fromdamage. One threshold value (e.g., upper threshold value), for example,serves as an alert that memory device 160D's temperature is rising andaction is needed soon, e.g., gradual throttling of memory requests.Another threshold value (e.g., critical threshold value), for exampleserves as an alarm that memory device 160D's temperature has reached acritical point and action is needed immediately to prevent or minimizedamage, e.g., halt all memory requests or cause the memory device topower down.

In one implementation, throttle feature 218 indicates an approximatedtemperature has met or exceeded one or more given threshold values formemory device 160D to elements of computing platform 100 in addition toor in lieu of memory controller 140. These other elements may includesoftware elements of processing elements 130, e.g., an OS. This OS, forexample, may implement thermal management control to reduce thetemperature of memory device 160D. In one example, the OS hasinformation that indicates that a given level of power consumed bymemory device 160D is known to cause memory device 160D's temperature torise by a certain amount. Thus, in this example, the OS, as part of thethermal management control for memory device 160D, reduces the powerconsumed by memory device 160D and/or transitions memory device 160D toa lower power state. This reduction in power or power state transition,for example, is expected to reduce the temperature of memory device160D. This is only one example of how the OS may implement thermalmanagement control to reduce a temperature of a memory device. Thisdisclosure is not limited to only this example.

Referring again to thermal manager 110 in FIG. 1. Thermal manager 110,for example, is depicted as an element of computing platform 100 that isseparate from Network interface 120, processing elements 130 and memorycontroller 140. In this example, thermal manager 110 may be part of orhosted on a dedicated management microcontroller such as a serviceprocessor.

In another example, thermal manager 110 resides within a grouping ofcomputing platform 100 resources that includes memory controller 140(e.g., a chipset). Thermal manager 110, in this other example, may bepart of a dedicated management microcontroller within the chipset or maybe included within or hosted on memory controller 140. Thermal manager110, for example, obtains temperatures from thermal sensor 150 andcommunications with other elements of computing platform 100 through thevarious communication links coupled to memory controller 140.

Referring again to memory 230 in FIG. 2. Memory 230 may include a widevariety of memory media including but not limited to volatile memory,non-volatile memory, flash, programmable variables or states, randomaccess memory (RAM), read-only memory (ROM), flash, or other static ordynamic storage media.

In one example, machine-readable instructions can be provided to memory230 from a form of machine-accessible medium. A machine-accessiblemedium may represent any mechanism that provides (i.e., stores and/ortransmits) information in a form readable by a machine (e.g., an ASIC,special function controller or processor, FPGA or other hardwaredevice). For example, a machine-accessible medium may include a computerreadable medium that includes: ROM; electrically erasable programmableROM (EEPROM); RAM; magnetic disk storage media; optical storage media;flash memory devices. The machine accessible medium may also include acommunication medium that includes: electrical, optical, acoustical orother form of propagated signals (e.g., carrier waves, infrared signals,digital signals) and the like.

In the previous descriptions, for the purpose of explanation, numerousspecific details were set forth in order to provide an understanding ofthis disclosure. It will be apparent that the disclosure can bepracticed without these specific details. In other instances, structuresand devices were shown in block diagram form in order to avoid obscuringthe disclosure.

References made in this disclosure to the term “responsive to” are notlimited to responsiveness to only a particular feature and/or structure.A feature may also be “responsive to” another feature and/or structureand also be located within that feature and/or structure. Additionally,the term “responsive to” may also be synonymous with other terms such as“communicatively coupled to,” “operatively coupled to” or “interactwith,” although the term is not limited in his regard.

What is claimed is:
 1. A method, comprising: obtaining a temperaturefrom a thermal sensor arranged to monitor temperature in proximity toplural memory devices on a memory module, the memory module having agiven thermal sensor configuration; determining if a configuration ofthe memory module with the given thermal sensor configuration matches aknown configuration; obtaining, based on a determination that theconfiguration matches a known configuration, individualized thermaloffset information, the individualized thermal offset informationincluding first temperature offset values individualized for each memorydevice in a low workload condition, respectively, second temperatureoffset values individualized for each memory device in a high workloadcondition, respectively, or individualized theta values individualizedfor each memory device, respectively, to determine a third temperatureoffset value for each memory device in a workload condition between thelow and the high workload condition, the individualized theta valuesrelated to a given increase in temperature for a given increase in powerconsumed by a subject memory device; obtaining, based on a determinationthat the configuration does not match a known configuration, defaultthermal offset information, the default thermal offset informationincluding a first temperature offset value commonly-used for all memorydevices in a low workload condition, a second temperature offset valuecommonly-used for all memory devices in a high workload condition, or acommon theta value commonly-used to determine a third temperature offsetvalue for all memory devices in a workload condition between the low andthe high workload condition, the common theta value related to a givenincrease in temperature for a given increase in power consumed by eachmemory device; approximating separate temperatures of each of the memorydevices based on the temperature obtained from the thermal sensor and onthe individualized thermal offset information or the default thermaloffset information; and implementing thermal management control based onthe approximated temperatures.
 2. The method of claim 1, theindividualized thermal offset information comprising one or more thermalcharacteristics of the memory module with the given thermal sensorconfiguration.
 3. The method of claim 1, comprising at least one of theindividualized thermal offset information and the default thermal offsetinformation provided as a thermal information table comprising one ormore basic input/output system (BIOS) tables, and the default thermaloffset information comprising one or more of a value related to a hightemperature point for the memory devices, and a value related to anaccuracy of the thermal sensor.
 4. The method of claim 1, comprising:detecting that an approximated temperature for a subject memory device,meets or exceeds a threshold value for the subject memory device fromamong the memory devices; and implementing thermal management controlbased on the detecting, the thermal management control includingthrottling requests to the subject memory device or reducing powerprovided to the subject memory device.
 5. An apparatus, comprising:thermal management logic at least a portion of which is in hardware, thethermal management logic to: obtain a temperature from a thermal sensorarranged to monitor temperature in proximity to plural memory devices ona memory module, the memory module having a given thermal sensorconfiguration; determine if a configuration of the memory module withthe given thermal sensor configuration matches a known configuration;obtain, based on a determination that the configuration matches a knownconfiguration, individualized thermal offset information, theindividualized thermal offset information including first temperatureoffset values individualized for each memory device in a low workloadcondition, respectively, second temperature offset values individualizedfor each memory device in a high workload condition, respectively, andindividualized theta values individualized for each memory device,respectively, to determine a third temperature offset value for eachmemory device in a workload condition between the low and the highworkload condition, the individualized theta values related to a givenincrease in temperature for a given increase in power consumed by asubject memory device; obtain, based on a determination that theconfiguration does not match a known configuration, default thermaloffset information, the default thermal offset information including afirst temperature offset value commonly-used for each memory device in alow workload condition, a second temperature offset value commonly-usedfor each memory device in a high workload condition, and a common thetavalue commonly-used to determine a third temperature offset value foreach memory device in a workload condition between the low and the highworkload condition, the common theta value related to a given increasein temperature for a given increase in power consumed by each memorydevice; approximate separate temperatures of each of the memory devicesbased on the temperature obtained from the thermal sensor and on theindividualized thermal offset information or the default offset thermalinformation; and implement thermal management control responsive to theapproximated temperatures.
 6. The apparatus of claim 5, theindividualized thermal offset information comprising one or more thermalcharacteristics of the memory module with the given thermal sensorconfiguration.
 7. The apparatus of claim 5, comprising at least one ofthe individualized thermal offset information and the default thermaloffset information provided as a thermal information table comprisingone or more basic input/output system (BIOS) tables, and the defaultthermal offset information comprising one or more of a value related toa high temperature point for the memory devices, and a value related toan accuracy of the thermal sensor.
 8. The apparatus of claim 5, thethermal management logic operative to: detect that an approximatedtemperature for a subject memory device, meets or exceeds a thresholdvalue for the subject memory device from among the memory devices; andimplement thermal management control based on the detecting, the thermalmanagement control including throttling requests to the subject memorydevice or reducing power provided to the subject memory device.
 9. Asystem, comprising: a thermal sensor arranged to monitor temperature inproximity to plural memory devices on a memory module, the memory modulehaving a given thermal sensor configuration; and thermal managementlogic at least a portion of which is in hardware, the thermal managementlogic to: obtain a temperature from the thermal sensor; determine if aconfiguration of the memory module with the given thermal sensorconfiguration matches a known configuration; obtain, based on adetermination that the configuration matches a known configuration,individualized thermal offset information, the individualized thermaloffset information including first temperature offset valuesindividualized for each memory device in a low workload condition,respectively, second temperature offset values individualized for eachmemory device in a high workload condition, respectively, andindividualized theta values individualized for each memory device,respectively, to determine a third temperature offset value for eachmemory device in a workload condition between the low and the highworkload condition, the individualized theta values related to a givenincrease in temperature for a given increase in power consumed by asubject memory device; obtain, based on a determination that theconfiguration does not match a known configuration, default thermaloffset information, the default thermal offset information including afirst temperature offset value commonly-used for each memory device in alow workload condition, a second temperature offset value commonly-usedfor each memory device in a high workload condition and a common thetavalue commonly-used to determine a third temperature offset value foreach memory device in a workload condition between the low and the highworkload condition, the common theta value related to a given increasein temperature for a given increase in power consumed by each memorydevice; approximate separate temperatures of each of the memory devicesbased on the temperature obtained from the thermal sensor and on theindividualized thermal offset information or the default thermal offsetinformation; and implement thermal management control based on theapproximated temperatures.
 10. The system of claim 9, the individualizedthermal offset information comprising one or more thermalcharacteristics of the memory module with the given thermal sensorconfiguration.
 11. The system of claim 9, comprising at least one of theindividualized thermal offset information and the default thermal offsetinformation provided as a thermal information table comprising one ormore basic input/output system (BIOS) tables, and the default thermaloffset information comprising one or more of a value related to a hightemperature point for the memory devices, and a value related to anaccuracy of the thermal sensor.
 12. The system of claim 9, the thermalmanagement logic to detect that the approximated temperature for asubject memory device, meets or exceeds a threshold value for thesubject memory device from among the memory devices; and implementthermal management control based on the detecting, the thermalmanagement control including throttling requests to the subject memorydevice or reducing power provided to the subject memory device.